This invention relates generally to processing within a computing environment, and more particularly to identifying unknown parameter and name value pairs.
The advent of asynchronous JavaScript and XML (Ajax) and rich Internet applications has transformed the way information is exchanged between a browser and a web server. Before Ajax the most common way to send information to a web application was via a form submittal, today there are an infinite number of combinations of parameter formats and data transfer standards.
For example before the introduction of Ajax, to make a login page, the developer would use a form which would contain at least two input fields: a user name and a password and a submit button.
<form action=“login.jsp” method=“POST”><input type=“text” name=“user”/></br><input type=“password” name=“pass”/></br><input type=“submit” value=“Submit”/></br></form>
When the submit button is clicked the browser transforms this form and the information populated by the user within it, into a HTTP request which would transmit the parameters as “uid=jsmith&passw=Demo1234&btnSubmit=Login.” These parameters were delimited using standard characters “=” for name and value separators, and “&” for parameter separators.
After Ajax was introduced the requirement to use an actual web form was eliminated because JavaScript within the page is able to manipulate and submit HTTP requests. In addition, both the HTML itself and the HTTP request being sent to the server have changed. Using, for example, JavaScript Object Notation (JSON) formatted JavaScript submission with the same parameters will be transmitted as “[“uid”:“jsmith”,“pass”:“Demo1234”]” over an XMLHTTPRequest JavaScript function.
The use of JSON is not required, and therefore developers are free to transmit data in any format using the XMLHTTPRequest JavaScript function. Since the format of parameters is now left to the ingenuity of the JavaScript developers various variations of parameter configurations are possible. Another example is the use of XML to parameterize data such as “<uid>jsmith</uid><pass>Demo1234</pass>.” Any other character or set of characters may be used to separate parameters, and name/value pairs from one another.